Yes. It is a static method and does not really need a separate class definition.
main()
Defined in the myFrame
Class
Here is a modification of the previous program.
Now there are only two class definitions.
The program starts running with the static main()
method
(as always.)
Remember that a static method exists when the program starts up
and is not part of any object.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class myFrame extends JFrame
{
public void paint ( Graphics g )
{
g.drawString("Click the close button", 10, 50 );
}
public static void main ( String[] args )
{
myFrame frm = new myFrame();
WindowQuitter wquit = new WindowQuitter();
frm.addWindowListener( wquit );
frm.setSize( 150, 100 );
frm.setVisible( true );
}
}
class WindowQuitter extends WindowAdapter
{
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
The program behaves exactly the same way as before. When you copy and run this program, name the source file myFrame.java (recall:the source file must have the same name as the one public class in that file.)
Most text books write GUI applications this way. There are other tricks that make a GUI program even shorter, and some books use those, too. But the three parts of a GUI program will always be there. Sometimes all three parts will be combined into one object.